//package com.project.imageinterference.utils;
//
//import cn.hutool.json.JSONUtil;
//import com.project.imageinterference.entity.SysUser;
//import com.project.imageinterference.exception.BusinessException;
//import io.jsonwebtoken.*;
//import org.springframework.util.StringUtils;
//
//import java.util.Date;
//
//public class TokenUtils {
//    /**
//     *设置token有效时长 一天
//     */
//    public static final long tokenExpiration = 14*24*60*60*1000;
//
//    /**
//     *编码密钥
//     */
//    public static String tokenSignKey = "dinfo!";
//
//    /**
//     *使用JWT根据用户名生成token
//     */
//    public static String createToken(String username){
//        String token = Jwts.builder().setSubject(username)
//                .setExpiration(new Date(System.currentTimeMillis() + tokenExpiration))
//                .signWith(SignatureAlgorithm.HS512,tokenSignKey).compressWith(CompressionCodecs.GZIP).compact();
//        return token;
//    }
//
//    /**
//     *根据token字符串得到用户信息
//     */
//    public static String getUserInfoFromToken(String token){
//        String userInfo = null;
//        try {
//            userInfo=Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token).getBody().getSubject();
//        }catch (SignatureException e){
//            userInfo="token有误";
//        }catch (ExpiredJwtException e){
//            userInfo="token过期";
//        }catch (Exception e){
//            userInfo="token解析失败";
//        }
//        return userInfo;
//    }
//
//    /**
//     * @Description: 将token转为用户信息json
//     * @Author: dusd
//     * @Date: 2024/1/8 17:57
//     * @param token:
//     * @return: java.lang.String
//     **/
//    public static String getUserInfoJsonFromToken(String token) throws BusinessException {
//        String userInfo = null;
//        try {
//            userInfo=Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token).getBody().getSubject();
//        }catch (SignatureException e){
//            throw new BusinessException("token有误");
//        }catch (ExpiredJwtException e){
//            throw new BusinessException("token过期");
//        }catch (Exception e){
//            throw new BusinessException("token解析失败");
//        }
//        return userInfo;
//    }
//
//    /**
//     * @Description: 从token获取userid
//     * @Author: dusd
//     * @Date: 2024/5/15 18:05
//     * @param token:
//     * @return: java.lang.String
//     **/
//    public static String getUserIdFromToken(String token) throws BusinessException{
////        String token = request.getHeader("token");
//        SysUser sysUserPo = null;
//        try {
//            if(!StringUtils.isEmpty(token)) {
//                String userinfo = TokenUtils.getUserInfoJsonFromToken(token);
//                sysUserPo = JSONUtil.toBean(userinfo, SysUser.class);
//                return sysUserPo.getId();
//            }
//        }catch (Exception e){
//            throw new BusinessException("token解析异常");
//        }
//        return "";
//    }
//}
